/*     */ package competitie;
/*     */ 
/*     */ class Spel
/*     */ {
/*     */   private static final String WIT = "wit";
/*     */   private static final String ZWART = "zwart";
/*  12 */   private long timeMillis = System.currentTimeMillis();
/*     */   private SpelBord bord;
/*     */   private BeurtRij beurtRij;
/*     */ 
/*     */   Spel()
/*     */   {
/*  17 */     this.bord = new SpelBord();
/*  18 */     int mogelijkheden = this.bord.aantalBordMogelijkheden();
/*  19 */     this.beurtRij = new BeurtRij(mogelijkheden);
/*     */   }
/*     */ 
/*     */   int geefSpelerAlsInt(String s) {
/*  23 */     if (s.equals("wit")) {
/*  24 */       return 1;
/*     */     }
/*     */ 
/*  27 */     return 2;
/*     */   }
/*     */ 
/*     */   String geefSpelerAlsString(int s)
/*     */   {
/*  32 */     if (s == 1) {
/*  33 */       return "wit";
/*     */     }
/*     */ 
/*  36 */     return "zwart";
/*     */   }
/*     */ 
/*     */   void resetDenktijd()
/*     */   {
/*  41 */     this.timeMillis = System.currentTimeMillis();
/*     */   }
/*     */ 
/*     */   long geefDenktijd() {
/*  45 */     long resultaat = System.currentTimeMillis() - this.timeMillis;
/*  46 */     this.timeMillis = System.currentTimeMillis();
/*  47 */     return resultaat;
/*     */   }
/*     */ 
/*     */   void verwerkGedanePas(int speler) {
/*  51 */     ZetRij zetRij = this.bord.getMogelijkeZetten(speler);
/*  52 */     if (zetRij.geenZetten()) {
/*  53 */       long denktijd = geefDenktijd();
/*  54 */       Beurt nieuweBeurt = new Beurt(speler, denktijd);
/*  55 */       this.beurtRij.voegToe(nieuweBeurt);
/*  56 */       this.bord.verwerkVolgendeBeurt(nieuweBeurt);
/*     */     }
/*     */   }
/*     */ 
/*     */   boolean isGeldigeZet(Coordinaat c, ZetRij rij) {
/*  61 */     for (int i = 0; i < rij.getAantalZetten(); i++) {
/*  62 */       Zet mogelijkeZet = rij.getZet(i);
/*  63 */       Coordinaat mogelijkeCoordinaat = mogelijkeZet.getGezetteSteen();
/*  64 */       if (c.equals(mogelijkeCoordinaat)) {
/*  65 */         return true;
/*     */       }
/*     */     }
/*  68 */     return false;
/*     */   }
/*     */ 
/*     */   void verwerkGedaneZet(int speler, Coordinaat c) {
/*  72 */     ZetRij mogelijkeZetten = this.bord.getMogelijkeZetten(speler);
/*  73 */     if (!isGeldigeZet(c, mogelijkeZetten)) {
/*  74 */       return;
/*     */     }
/*  76 */     CoordinaatRij stenenTeSlaan = this.bord.geefIngeslotenCoordinaten(c, speler);
/*  77 */     Zet nieuweZet = new Zet(c, stenenTeSlaan);
/*  78 */     long denktijd = geefDenktijd();
/*  79 */     Beurt nieuweBeurt = new Beurt(speler, denktijd, nieuweZet);
/*  80 */     this.beurtRij.voegToe(nieuweBeurt);
/*  81 */     this.bord.verwerkVolgendeBeurt(nieuweBeurt);
/*     */   }
/*     */ 
/*     */   void gaBeurtenTerug(int aantalTerug) {
/*  85 */     for (int i = 0; i < aantalTerug; i++) {
/*  86 */       if (this.beurtRij.geenBeurten()) {
/*  87 */         return;
/*     */       }
/*  89 */       resetDenktijd();
/*  90 */       int laatsteBeurt = this.beurtRij.getAantalBeurten() - 1;
/*  91 */       Beurt beurt = this.beurtRij.getBeurt(laatsteBeurt);
/*  92 */       this.bord.verwerkVorigeBeurt(beurt);
/*  93 */       this.beurtRij.verwijderLaatsteBeurt();
/*     */     }
/*     */   }
/*     */ 
/*     */   SpelBord geefSpelBord()
/*     */   {
/*  99 */     return this.bord;
/*     */   }
/*     */ 
/*     */   int[][] geefBord() {
/* 103 */     return this.bord.geefBord();
/*     */   }
/*     */ 
/*     */   BeurtRij geefBeurtRij() {
/* 107 */     return this.beurtRij;
/*     */   }
/*     */ 
/*     */   boolean isGameOver() {
/* 111 */     if (this.beurtRij.zijnLaatsteTweeBeurtenGepast()) {
/* 112 */       return true;
/*     */     }
/* 114 */     ZetRij mogelijkeZettenVanWit = this.bord.getMogelijkeZetten(1);
/* 115 */     ZetRij mogelijkeZettenVanZwart = this.bord.getMogelijkeZetten(2);
/* 116 */     int aantalMogelijkeZettenVanWit = mogelijkeZettenVanWit.getAantalZetten();
/* 117 */     int aantalMogelijkeZettenVanZwart = mogelijkeZettenVanZwart.getAantalZetten();
/* 118 */     return (aantalMogelijkeZettenVanWit == 0) && (aantalMogelijkeZettenVanZwart == 0);
/*     */   }
/*     */ }

/* Location:           /Users/abaart/Downloads/competitie(2).jar
 * Qualified Name:     competitie.Spel
 * JD-Core Version:    0.6.0
 */